各种高速串行接口(如USB3.0/3.1、ThunderBolt)速度是由什么决定的? 您所在的位置:网站首页 macbook pro接口速度 各种高速串行接口(如USB3.0/3.1、ThunderBolt)速度是由什么决定的?

各种高速串行接口(如USB3.0/3.1、ThunderBolt)速度是由什么决定的?

2023-03-31 09:49| 来源: 网络整理| 查看: 265

发一个老段子:马屁股决定航天飞机火箭助推器的宽度

现代铁路两条铁轨之间的标准距离是四英尺又八点五英寸。原来,早期的铁路是由建电车的人所设计的,而四英尺又八点五英寸正是电车所用的轮距标准。

那么,电车的标准又是从哪里来的呢?

最先造电车的人以前是造马车的,所以电车的标准是沿用马车的轮距标准。

马车又为什么要用这个轮距标准呢?英国马路辙迹的宽度是四英尺又八点五英寸,所以,如果马车用其他轮距,它的轮子很快会在英国的老路上撞坏。这些辙迹又是从何而来的呢?从古罗马人那里来的。因为 包括英国的长途老路都是由罗马人为它的军队所铺设的,而四英尺又八点五英寸正是罗马战车的 任何其他轮宽的战车在这些路上行驶的话,轮子的寿命都不会很长。

可以再问,罗马人为什么以四英尺又八点五英寸为战车的轮距宽度呢?

原因很简单,这是牵引一辆战车的两匹马屁股的宽度。

故事到此还没有结束。美国航天飞机燃料箱的两旁有两个火箭推进器,因为这些推进器造好之后要用 路上又要通过一些隧道,而这些隧道的宽度只比火车轨道宽一点,因此火箭助推器的宽度是由铁轨的宽度所决定的。

所以,最后的结论是:“路径依赖”导致了美国航天飞机火箭助推器的宽度,而这个宽度竟然是两千年前由两匹马屁股的宽度决定的。

一旦人们做了某种判断,就好比走上了一条不归之路,惯性的力量会使这一选择不断自我强化,并让你轻易走不出去,这种现象就被称为“路径依赖”。

------------------------------------------------------------------------------------------------

对于各种高速串行信号来讲,也有同样的“路径依赖”,源头是从哪里开始的,这个说不清楚了,我个人认为一个源头就是数据传输。

上世纪七八十年代就出来了各种数据传输的协议,比如T1/E1载波系统(2.048Mbps)、X.25中继系统、ISDN(综合业务数字网)等,那时的速度还比较慢的,到了九十年代,SDH(Synchronous Digital Hierarchy,同步数字体系)和SONET(Synchronous Optical Network同步光纤网)标准出现,其基本速度就是STM-1 155.520Mbps,STM-4为622.080Mbps,STM-16为2488.240Mbps,到更后来WDM(Wavelength Division Multiplexing, 波分复用)技术,再到最新的OTN(OpticalTransportNetwork,光传送网),这里面最重要的个概念就是TDM(Time Division Multiplexing, 时分复用)。

时分多路复用Time-Division Multiplexing,TDM)是一种数字的或者模拟(较罕见)的多路复用技术。使用这种技术,两个以上的

信号

或数据流可以同时在一条通信线路上传输,其表现为同一通信信道的子信道。但在

物理

上来看,信号还是轮流占用物理通道的。时间域被分成

周期

循环的一些小段,每段时间长度是固定的,每个时段用来传输一个子信道。例如子信道1的采样,可能是

字节

或者是

数据块

,使用时间段1,子信道2使用时间段2,等等。一个TDM的帧包含了一个子信道的一个时间段,当最后一个子信道传输完毕,这样的过程将会再重复来传输新的帧,也就是下个信号片段。来源维基百科:

https://zh.wikipedia.org/wiki/%E6%97%B6%E5%88%86%E5%A4%9A%E8%B7%AF%E5%A4%8D%E7%94%A8

数字传输就像打包裹,最基本单元是一个小包裹,四个小包裹打成一个中的,再四个中的打成一个大的,再四个大的打成一个更大,然后再特大的。比如SONET的传输速度就是STM-1/-4/-16等这样叠加上去,以2的指数倍往上翻。其中TDM-16速度为2488.240MBps,就是我们通常说的2.5Gbps。

上面说了堆协议,那总要具体的物理实现,一般选用铜线或光缆进行远距离传输。以光缆为例,数据先由电路中的并行数据变成串行传送出去,然后再经过光纤接口,变成光信号在光纤里传输,接收时先由光信号变成电信号,再由串行变成并行到内部使用。其中由并行到串行/串行到并行经过的就称为SERDES PHY,高速SERDES的技术实现难度较高,得由模拟电路实现,在很多场合就是一块单独的SERDES PHY芯片,那就有专门的公司来做这个事情,比如在业界大名鼎鼎的TI德州仪器,其TI芯片就卖得很好。逐渐实现这样的产业链:做数字电路的、模拟电路的、测试设备的、生产制造的(包括PCB和SERDES PHY、光口、光纤等),已经定了个基本速率后,再往上的更新换代往往是X2地叠加,在数字电路上最好实现,在模拟电路上也有这样的动力,整个技术就一直这样往前走下去。

回到标题高速串行接口由什么决定的来,PCI总线由Intel公司于91年提出,之后移交给第三方机构PCI SIG。PCI SIG由多家业内公司组成的联盟,别的公司也可以申请加入成为会员,TI也是早期会员之一。就像联合国一样,Intel等公司像常任理事国一样拥有更大的主导权;USB于94年由带头大哥Intel联合微软、HP、NEC等电脑公司组成USB-IF组织,96年推出USB 1.0标准;(同期还有Apple推出的FireWire火线,也红火了好多年)由此可见,Intel对PCI/PCIE和USB的建立和发展一直拥有极大的主导权。

2001年PCIE开始制定,决定以串行方式代替并行的PCI总线时,那时产业内2.5G PHY已经比较成熟了,PCI组织PCI-SIG决定直接借鉴此速度就很正常;等到PCIE 2.0发布已经是过2007年,就直接X2变成5G了; USB 3.0于2008年发布,直接借鉴业界比较成熟的5G方案也就很正常了; 而PCIE 3.0发布是2010年时(为什么PCIE 3.0是8G而不是10G,这算是个折衷吧,速度越快对PCB走线设计和生产、线缆、测试仪器等要求越高,3.0采用64b/66b或128b/130b编码方案,8G*64/66=7.88G,解码后的速度几乎就是2.0的二倍,2.0采用传统的8b/10b编码,解码后速度5G*8/10=4G)。

等到USB3.1发布,也就是最近的事情(2014年),觉得10G PHY也比较成熟了,那也直接采用10G吧,USB 3.1采用128b/132b编码,效率与PCIE 3.0是等效的,它直接向PCIE借鉴了很多内容。

而ThunderBolt,定位在更高速速度传输,其1.0速度最开始设计时就是一 路10G PHY(大约2011年),而后2.0就成两路10G PHY了,最近的3.0成两路20G PHY,为什么不直接成40G PHY,工艺做不上去啊。

很早前,业界有个传说,铜界质PCB走线最高速度只能到16G,几年前就已经打破了,28G甚至32G以上跑铜界质的高速PHY已经有DEMO演示了,ThunderBolt 2.0推出两路10G PHY,自然也是业界有这样能力去推出成熟产品。

不出意外的是,ThunderBolt定位在高端,从最先推出1.0接口的MAC电脑(2011年),到现在已经四年过去了,相对来说还很不普及,只在高端电脑上才有配备,其外设产品,比如支持该接口的外接存储和高清显示器见到过报道,但市场上卖得真不太多,比起这几年一下子普及开来的USB 3.0还是相差不少。与此类似待遇的是DisplayPort接口,显示器接口从最早的VGA到DVI,到同时支持声音图像传输的HDMI、DisplayPort接口,HDMI逐渐变得常见,尤其是电视接口上,而DisplayPort仍然不太多见。而ThunderBolt在外观上与Mini DP接口兼容,在功能上可认为是图像传输接口DP和数据传输协议PCIE的合体。

这不,Intel一琢磨,那ThunderBolt 3.0改成USB3.1-C接口兼容吧,这样支持ThunderBolt 3.0的外设既可以连接对应的ThunderBolt 3.0 host,享受40G的高速,也可以接在USB3.1-C上,尽管只能跑USB 3.0 5G速率(注意,资料显示所兼容的控制器是USB 3.0,而不是最新的3.1; 也有人指出Intel推出的控制器是支持10G速度的。anyway,PHY通道是支持的,这主要取决于控制器部分),但是更常见啊,这样对于外设厂商也是一大利好,用户也可以放心地买啦,不用担心接口不支持啦。

最后做个总结:高速串行接口速度由什么决定?当时协议公布时前代技术的积累与影响和已成熟技术,二者占重要因素。比如2.5G速率和STM-1 155M的关系,比如不同年代PHY技术的成熟度,再者还有业界领先公司在制定标准时的号召力及技术前瞻性,如Intel在多种协议上的主导力。

这里顺便吐槽下动不动国产OS、国产某技术、国产CPU……试图与业界流行的产品和技术对抗,想另起炉灶,而其本质往往只是在人家已有技术的基础上借鉴人家的思路,抄袭或模仿成类似的产品,尤其是ZF在其中扮演主导角色,这种努力往往失败,也许在某些不开放场合有一席之地,只要是开放市场,几乎无竞争力,不提其它,一个路径依赖就把你拍死了。那些号称的自主、国产,开发过程和产品里仍然有大量开放世界里的工具、成熟产品、思维、架构体系,那做出来的东西只是在某一个细节上对已有产品形成了可替代力,但其上游、下游还是与业界紧密联系在一起,这种情况下很难有所发展。

-------------------------------------------------

前不久还写了个回答,也一起贴大这里:

如何看待 Thunderbolt 3 改用 USB-C 接口?

手头正用的是Macbook Pro 2012年版,用的视频输出接口是Thunderbolt 1,接口与Mini DisplayPort接口兼容,现用HDMI接口外接显示器,要使用个转接器。

为什么Thunderbolt 3要改成USB3.1-C兼容接口?因为它是Intel啊,这两家标准都基本以Intel为主导啊,PHY team的人碰碰头,小会议室一坐,说咱们做成一样的吧,就成啦!

从商业角度来讲,统一标准有多少好处,Thunderbolt现在流行范围还不广泛且由Intel主导,阻力比较小等考虑就不多说啦,谈点技术上的实现。

为什么插上去可以实现兼容?因为它们都属于高速串行传输协议,在技术上有很多共用的地方,且在速率上不同的代本身是匹配的(Thunderbolt 1的速度就是10Gbps,与USB3.1一致),再者不同的高速串行协议往往是上层协议不同,在底层实现上是通用的,也就是控制器不同,而PHY可以通用。

我在S公司做过较长时间的PCIE原型平台验证,主要是数字电路部分的控制器代码烧录到FPGA中,已经流片成功被做过基础电学测试的PHY测试芯片做成单独的子卡扣在原型平台上,再与PC主板连接进行测试。最高支持10Gbps的PHY子卡不仅仅用于PCIE GEN3 8Gbps,同时还支持SATA GEN3 6Gbps和USB3 5Gbps(是否还支持USB3.1 10Gbps还要确认下,按理说支持),子卡上留有多种接口,PCIE金手指、SATA接口、USB接口等,哪个项目要测试了,直接从一个平台拔下来,换上接口放另一个平台就可。这个过程中,FPGA内的控制器代码是变化的,同时上电时会对PHY子卡配置一组向量去支持不同的模式。

并且这些协议不同的代数间往往速率是成倍翻的,不仅是PHY的速率成倍翻,而且控制器内部的运行时钟或数据位宽也是成倍翻。比如PCIE GEN1 2.5G, GEN2 5G, GEN3 8G(编码方式从之前的8b/10b变成64b/66b或128b/130b,实现有效负载是翻倍的),而数字控制器内部有两种方法:如果数据位宽固定都是32bit,那GEN1时core clock的速率为62.5MHZ,GEN2时为125MHZ,GEN3时为250MHZ;如果是clock速率保持为125MHZ不变,则GEN1时数据位宽为16bit,GEN2时为32bit,GEN3时为64bit。GEN3的芯片同时支持在GEN1和GEN2模式下运行,并且最开始初始化时即从GEN1开始,然后硬件双方进行握手,看一起能支持的最大速率是多少,然后再调节到最大速率;如果在高速率下出现不稳定、自检错误过多,还可以自动回退到低速率上安全运行。这样的设计方式是非常合理的

同样,对于Thunderbolt来说,GEN1是10Gbps X1,GEN2是10Gbps X2, GEN3是20Gbps X2,它本身是可以运行在GEN1 10Gbps,接在USB3.1-C接口上时,是以USB 3.0的控制器协议运行的,也就是5G的速度,并不是USB 3.1 10G,这点是最近几天看到资料才知道的。这么做应该是出于设计成本和稳定性的考虑吧,毕竟USB 3.1协议出来没多久,设计公司还没有成熟稳定的代码,那ThunderBolt 3.1就要使用USB 3.1的协议的话,设计ThunderBolt 3.1控制器部分时就比较困难了,还不如直接采用成熟的USB 3.0。这也从一个角度说明了,协议的设计是比较接地气的,要考虑多方面的因素,而不是一昧地求新求快。

也有网友留言说现在Intel推出的控制器支持10G。anyway,PHY通道是支持的,这主要取决于控制器部分。

------------------------------------------------------------------------

Thunderbolt可以看成是PCIE GEN3与DisplayPort视频接口的合体,Thunderbolt控制器一端接PCIE数据流和DisplayPort数据流,一端连接PHY接口。控制器对进入的数据经过少量的处理,仍基本保持原来的数据格式形式,比如其中的PCIE 3.0数据仍为64b/66b或128b/130b编码形式,而DisplayPort保持8b/10b编码形式。

当同时连接PCIE设备和DisplayPort设备时,DisplayPort通道拥有更高的优先权,如下图所示,Data Only时,下行和上行数据速度最大为22Gbps; 当接一个5K高清设备时,下行数据速度减小为18Gbps,上行保持不变; 当接两个4K高清设备时,下行数据速度减小为8Gbps,上行保持不变。

从上可见,Thunderbolt 3.0单通道的速率就是20Gbps,这个对物理通道的要求是相当高的,通常铜介质做到16Gbps就很困难了(目前还有做到28G甚至30G以上的铜介质传输的报道),想要完美地运行如此高的速率,官方认证的原装线缆必不可少,价钱也很昂贵罗。

觉得写得不错大家点个赞,说错的地方请轻砸啊。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有